# 引入 Vue
// 便于调试,改成:
import Vue from 'vue/dist/vue.runtime.common.dev.js'
引入 Vue 对象,主要执行:
- 往 Vue 函数/对象的原型上挂载初始化方法、全局方法和挂载 Vue 静态方法,做准备工作;
- 导出 Vue 模块。
主要源码如下:
initMixin(Vue);
stateMixin(Vue);
eventsMixin(Vue);
lifecycleMixin(Vue);
renderMixin(Vue);
initGlobalAPI(Vue);
module.exports = Vue;
# initMixin 函数
主要 Vue 原型上挂载出实例初始化方法_init
。
# stateMixin
这一部分主要处理:数据劫持 + 双向数据绑定。
# eventsMixin
在 Vue 原型上挂载全局方法:$on
、$once
、$off
、$emit
。
# lifecycleMixin
在 Vue 原型上挂载跟 Vue 实例生命周期有关的方法:_update
、$forceUpdate
、$destroy
。
# renderMixin
在 Vue 原型上挂载跟渲染有关的方法:$nextTick
、_render
。
# initGlobalAPI
直接往 Vue 上挂载初始化全局 API 静态方法(非原型上挂载),可通过 Vue 直接调用:set
、delete
、nextTick
、observable
、use
、mixin
、component
、directive
、filter
。